Zabezpeceni webservice

Otázka od: Daniel Frantik

10. 12. 2003 10:46

Ahoj,
  mam WS, urcenou pro volani pouze jednou konkretni aplikaci (systemova
integrace   Chtel bych tuto zabezpecit proti neautorizovanemu volani (a
tim zasahovani do dat). Jak na to?

1a) Autorizace pres WS - pridat login a logout metody WS (+https proti
odposlechu) - tady je problem s CGI, ze?
1b) Pridavat autorizacni udaje do vsech metod na WS a pokazde znovu
overovat prava - snesitelne ale divne...
2) Zabezpeceni prostredky firewalu a apache
3) nejak jinak

diky za rady,
  Danik


Odpovedá: Petr Vones

10. 12. 2003 12:54

From: "Daniel Frantik" <frantik@telpro.cz>
> mam WS, urcenou pro volani pouze jednou konkretni aplikaci (systemova
> integrace   Chtel bych tuto zabezpecit proti neautorizovanemu volani (a
> tim zasahovani do dat). Jak na to?

V cem je ta webservice napsana, Delphi nebo .NET ?

WS-Security Drilldown in Web Services Enhancements 2.0
http://msdn.microsoft.com/webservices/building/wse/default.aspx?pull=/library/en-
us/dnwebsrv/html/wssecdrill.asp

> 1a) Autorizace pres WS - pridat login a logout metody WS (+https proti
> odposlechu) - tady je problem s CGI, ze?

Login musi vratit nejaky session ID (napriklad GUID v textove podobe) a tyto
session musis nekde ukladat a spravovat (timeout atd). Obecne se na webservice
CGI moc nehodi uz jen z duvodu rychlosti.

> 1b) Pridavat autorizacni udaje do vsech metod na WS a pokazde znovu
> overovat prava - snesitelne ale divne...

Tohle se da resit pomoci SOAP headeru kde pri kazdem volani metody predavas
bud ten jednoznacny session id nebo login. Predavat login pri kazdem volani
metody je ale ponekud narocne, na druhou stranu pokud je to reseno jako CGI
tak se to uz ztrati.

> 2) Zabezpeceni prostredky firewalu a apache

Neni od veci omezit pristup jen pro urcite IP adresy pokud je to mozne. Totez
lze udelat i primo v implementaci webservice.

Petr Vones